Scroll to navigation

GETDOMAINNAME(2) Linux Programmer's Manual GETDOMAINNAME(2)

名前

getdomainname, setdomainname - ドメイン名の取得・設定をする

書式

#include <unistd.h>

int getdomainname(char *name, size_t len);
int setdomainname(const char *name, size_t len);


glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

getdomainname(), setdomainname(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

説明

これらの関数は、現在のプロセッサのドメイン名を取得・変更するために使われる。

setdomainname() は、ドメイン名を、文字配列 name で指定された値に設定する。 引き数 len には、 name のバイト数を指定する (そのため、 name では文字列終端の NULL バイトは必要ない)。

getdomainname() は、NULL 終端されたドメイン名を、 len バイトの長さの文字配列 name に格納して返す。 NULL 終端されたドメイン名が len バイトより長い場合、 getdomainname() は、(glibc では) 始めの len バイトを返し、(libc では) エラーとなる。

返り値

成功した場合 0 が返る。失敗した場合 -1 が返り、 errno がエラーの内容に従って設定される。

エラー

setdomainname() は以下のエラーで失敗する可能性がある。

name がユーザアドレス空間の外を指した。
len が負であるか、長すぎる。
setdomainname() において、呼び出した人に特権がない (Linux では CAP_SYS_ADMIN ケーパビリティ (capability) がない)。

getdomainname() は以下のエラーで失敗する可能性がある。

libc での getdomainname() において、 name が NULL ポインタであるか、 len バイトより長い。

準拠

POSIX では、これら関数は定義されていない。

注意

Linux 1.0 以降では、ドメイン名の長さの上限は 終端の NULL バイトを含めて 64 バイトである。 もっと古いカーネルでは 8 バイトであった。

(x86 を含む) Linux のほとんどのアーキテクチャでは、 getdomainname() というシステムコールは存在しない。 その代わり、glibc で getdomainname() がライブラリ関数として実装されており、この関数は uname(2) の呼び出しで返された domainname フィールドのコピーを返す。

関連項目

gethostname(2), sethostname(2), uname(2)

2008-11-27 Linux